package com.zmn.oms.model.dto.messageV1;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 类描述：发送消息实例
 *
 * @author yule
 * @date 2020/12/22 22:29
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SendMscDIO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 订单号（非必须，用户记录OMS内部发送记录唯一标示，不传则不记录）
     */
    private Long orderId;

    /**
     * 支持短信通道自动切换需要传，和工单号一致
     */
    private Long businessId;

    /**
     * 【必传参数】，消息中心配置的规则ID
     */
    private Integer ruleId;

    /**
     * 消息中心配置的规则code
     */
    private String ruleCode;

    /**
     * 发送对象ID
     */
    private String objectId;

    /**
     * 【必传参数】，发送方系统名称：OMS,CMS,UMS...
     */
    private String callsName;

    /**
     * 城市ID，不传则默认使用通用模板--对应订单 cityId 字段
     */
    private String areaId;

    /**
     * 渠道ID，不传则默认使用通用模板
     */
    private String channelId;

    /**
     * 发送短信
     */
    private SmsMessageDIO smsParams;

    /**
     * 发送微信消息
     */
    private WeChatMessageDIO weChatParams;

    /**
     * 微信小程序消息
     */
    private WechatMiniMessageDIO weChatMiniParams;

    /**
     * 发送百度消息
     */
    private BaiduMessageDIO baiduParams;

    /**
     * 发送安卓消息
     */
    private AndroidMessageDIO androidParams;

    /**
     * 发送IOS消息
     */
    private IosMessageDIO iosParams;

    /**
     * 发送钉钉消息
     */
    private DingTalkMessageDIO dingTalkParams;

    /**
     * 消息序列号：该参数由client自动生成，你设置了也没用^_^。
     */
    private String serialNumber;

    /**
     * 延迟发送时间，单位：秒
     */
    private Long delaySecond;
}
